
// 解析表格数据
import XLSX from 'xlsx'

function explainExcel(file, flag) {
    return new Promise(function (resolve, reject) {
        // 存储获取到的数据
        let data = []

        // 通过FileReader对象读取文件
        const fileReader = new FileReader()

        // 二进制
        fileReader.readAsBinaryString(file)

        fileReader.onload = event => {
            try {
                const { result } = event.target
                // 以二进制流方式读取得到整份excel表格对象
                const workbook = XLSX.read(result, { type: 'binary', cellDates: true, raw: true })
                // 遍历每张工作表进行读取(这里默认只读取第一张表)
                for (const sheet in workbook.Sheets) {
                    if (workbook.Sheets.hasOwnProperty(sheet)) {
                        let ref = workbook.Sheets[sheet]['!ref'].split(':')
                        let range = 'A2' + ref[1]
                        data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet],
                            {
                                range: range
                            }
                        ));
                        // 如果只取第一张表，就取消注释这行
                        break;
                    }
                }
                resolve(data)
            } catch (e) {
                data = []
                reject(data)
            }
        }
    })
};
export default explainExcel